package cn.sfrog.project.biz.admin.service;

import cn.sfrog.project.biz.admin.domain.BizWithdrawBankCard;
import cn.sfrog.project.biz.admin.domain.vo.BizWithdrawBankCardFormVO;
import cn.sfrog.project.biz.admin.domain.vo.BizWithdrawBankCardQueryVO;
import cn.sfrog.project.biz.admin.domain.vo.BizWithdrawBankCardVO;
import cn.sfrog.project.biz.web.vo.account.AppUserBankCardFormVO;
import cn.sfrog.project.biz.web.vo.account.AppUserBankCardResultVO;
import cn.sfrog.system.domain.vo.BizStatusChangeVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 提现银行卡Service接口
 */
public interface IBizWithdrawBankCardService extends IService<BizWithdrawBankCard> {
    /**
     * 查询提现银行卡
     *
     * @param id 提现银行卡主键
     * @return 提现银行卡
     */
    public BizWithdrawBankCardVO selectBizWithdrawBankCardById(Long id);

    /**
     * 查询提现银行卡列表
     *
     * @param query 提现银行卡
     * @return 提现银行卡集合
     */
    public List<BizWithdrawBankCardVO> selectBizWithdrawBankCardList(BizWithdrawBankCardQueryVO query);

    /**
     * 新增提现银行卡
     *
     * @param form 提现银行卡
     * @return 结果
     */
    public boolean insertBizWithdrawBankCard(BizWithdrawBankCardFormVO form);

    /**
     * 修改提现银行卡
     *
     * @param form 提现银行卡
     * @return 结果
     */
    public boolean updateBizWithdrawBankCard(BizWithdrawBankCardFormVO form);

    /**
     * 批量删除提现银行卡
     *
     * @param ids 需要删除的提现银行卡主键集合
     * @return 结果
     */
    public boolean deleteBizWithdrawBankCardByIds(Long[] ids);

    /**
     * 更改状态
     *
     * @param vo 更改状态表单
     * @return 结果
     */
    boolean changeStatus(BizStatusChangeVO vo);

    /**
     * APP-添加银行卡
     * @param form
     * @return
     */
    Boolean saveBankCard(AppUserBankCardFormVO form);

    /**
     * APP-获取银行卡列表
     * @param userId
     * @return
     */
    List<AppUserBankCardResultVO> selectAppUserBankCardList(Long userId);
}
